Providing online mapping with user selected preferences

ABSTRACT

One embodiment of the invention comprises a method including the step of responsive to receiving a map request from a user that pertains to a specified geographical feature, generating a first view that shows the geographical feature. The method further includes specifying each of one or more preference categories of the user, wherein a user preference is needed for each category, in order to show an additional feature corresponding to each user preference on a map view which includes the geographical feature. The method further includes determining the user preference for each category, wherein at least one of the user preferences is determined from information obtained by accessing an online social network in which the user participates. Each determined user preference is used with one or more search engines in order to acquire information for use in generating each of the additional features for a map view.

BACKGROUND

1. Field

The invention disclosed and claimed herein generally pertains to onlinemapping services. More particularly, the invention pertains to adaptingan online mapping service or mapping tool to furnish and displayinformation with the map that pertains to preferences and specialinterests of the user.

2. Description of the Related Art

At present, Global Positioning Systems (GPS) and online mapping servicesor systems such as Google maps, are used to provide directions tolocations, travel distance information, and various types of informationpertaining to a specified geographical location. For example, if aperson plans to travel to a remote city for several days and stay at aparticular address, he or she can use an online mapping service tolocate places of interest, such as various types of businesses andpublic facilities that are within a specified distance from theparticular address. By way of example and not limitation, places ofinterest could include hotels, movie theaters, public libraries, andrestaurants or other businesses of particular types.

Notwithstanding the benefits of currently available mapping systems,their use has certain drawbacks. As an example, a user living in a largecity such as New York could have a special interest in a certain type ofvintage records. In order to search for records of the particular type,he enters a search request for “New York record stores” in an onlinemapping service of the above type. In response, the service provides theuser with over 15,000 results. While each of these results is a New Yorkrecord store, there is no further information to indicate which of thestores may contain the particular records of interest, and which do not.Accordingly, the user is required to expend further effort, which may besubstantial, to determine this information for individual stores.

SUMMARY

Embodiments of the invention pertain to a method, system and computerprogram product, wherein an online mapping service or other mapping toolis configured to provide faceted search results, and to provide multipledisplays of the results. In these embodiments, an online mapping tool orservice can access user preferences, and can also access preferences ofothers who are associated with the user through one or more socialnetworks. In response to a user request for location, travel distance orother geographic information that the mapping tool generally provides,the mapping tool accesses one or more of the social networks, in orderto determine certain user preferences. The mapping tool then presentsthe user with a viewable map showing location or other requestedinformation, which has been modified or highlighted in accordance withthe preference information.

One embodiment of the invention is directed to a computer implementedmethod for operating a viewable mapping tool to provide a user withspecified information including information pertaining to one or morepreferred service providers. The method includes the step of responsiveto receiving a map request from a user that pertains to a specifiedgeographical feature, generating a first view that shows thegeographical feature. The method further includes specifying each of oneor more preference categories of the user, wherein a user preference isneeded for each category, in order to show an additional featurecorresponding to each user preference on a map view which includes thegeographical feature. The method further includes determining the userpreference for each category, wherein at least one of the userpreferences is determined from information obtained by accessing anonline social network in which the user participates. Each determineduser preference is used with one or more search engines in order toacquire information for use in generating each of the additionalfeatures for a map view.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is a schematic view depicting components for an embodiment of theinvention.

FIG. 2 is a schematic view showing elements of a map generated by anembodiment of the invention.

FIGS. 3A and 3B are schematic views showing different facets generatedby an embodiment of the invention.

FIG. 4 is a flowchart showing steps for a method including an embodimentof the invention.

FIG. 5 is a block diagram showing a network of data processing systemsin which an embodiment of the invention may be implemented.

FIG. 6 is a block diagram showing a computer or data processing systemthat may be used in implementing embodiments of the invention.

FIG. 7 is a schematic view showing further elements of a map generatedby an embodiment of the invention.

DETAILED DESCRIPTION

As will be appreciated by one skilled in the art, aspects of the presentinvention may be embodied as a system, method or computer programproduct. Accordingly, aspects of the present invention may take the formof an entirely hardware embodiment, an entirely software embodiment(including firmware, resident software, micro-code, etc.) or anembodiment combining software and hardware aspects that may allgenerally be referred to herein as a “circuit,” “module” or “system.”Furthermore, aspects of the present invention may take the form of acomputer program product embodied in one or more computer readablemedium(s) having computer readable program code embodied thereon.

Any combination of one or more computer readable medium(s) may beutilized. The computer readable medium may be a computer readable signalmedium or a computer readable storage medium. A computer readablestorage medium may be, for example, but not limited to, an electronic,magnetic, optical, electromagnetic, infrared, or semiconductor system,apparatus, or device, or any suitable combination of the foregoing. Morespecific examples (a non-exhaustive list) of the computer readablestorage medium would include the following: an electrical connectionhaving one or more wires, a portable computer diskette, a hard disk, arandom access memory (RAM), a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM or Flash memory), an optical fiber,a portable compact disc read-only memory (CD-ROM), an optical storagedevice, a magnetic storage device, or any suitable combination of theforegoing. In the context of this document, a computer readable storagemedium may be any tangible medium that can contain, or store a programfor use by or in connection with an instruction execution system,apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wireline, optical fiber cable, RF, etc., or any suitable combination ofthe foregoing.

Computer program code for carrying out operations for aspects of thepresent invention may be written in any combination of one or moreprogramming languages, including an object oriented programming languagesuch as Java, Smalltalk, C++ or the like and conventional proceduralprogramming languages, such as the “C” programming language or similarprogramming languages. The program code may execute entirely on theuser's computer, partly on the user's computer, as a stand-alonesoftware package, partly on the user's computer and partly on a remotecomputer or entirely on the remote computer or server. In the latterscenario, the remote computer may be connected to the user's computerthrough any type of network, including a local area network (LAN) or awide area network (WAN), or the connection may be made to an externalcomputer (for example, through the Internet using an Internet ServiceProvider).

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

Referring to FIG. 1, there is shown a mapping tool including aprocessing system 100 for implementing embodiments of the invention.System 100 includes an analytics engine 102 that contains modules 102a-102 e. Engine 102 is configured to perform certain functions of a GPSor online mapping service in response to a user map request, in order toprovide a map for the user that shows specified geographic information.Such information, for example, could include one or more travel routesfrom a current location to a destination address, or could show an arealying within a selected radius of the destination address. Accordingly,system 100 is provided with an input device 104 for furnishing engine102 with such address and location information.

FIG. 1 further shows a user input device 106 for entering specialinstructions into analytic engine 102, in connection with a particularmap request. Such special instructions are discussed hereinafter infurther detail.

Referring further to FIG. 1, there are shown social network sites 108and 110 connected to analytics engine 102 through a preferenceinformation channel 114, and more particularly through channelcomponents 114 a and 114 b, respectively. Networks 108 and 110 may haveservers that each has a Web 2.0 interface. Also, one or more searchengines 112 are connected to analytics engine 102, through a channelcomponent 114 c.

Embodiments of the invention may use one or more social network sites108, such as Facebook, Twitter and/or Pinterest, by way of example andnot limitation, wherein a network 108 provides a profile of a user ofsystem 100. Thus, a network 108 can furnish a list of the preferences,or likes and dislikes, of a user who is registered therewith. Forexample, social network site 108 a includes elements found in Facebookand networks similar thereto, such as user likes or preferences;communities or groups that include the user; and wall posts andcheck-ins. The Pinterest site 108 b provides user preferences for thingsand places that are shown by pictures. Twitter tags 108 c enable a userto comment on different subjects that are respectively represented bytags.

Social network sites 110 are similar to sites 108, except that each site110 provides profiles of members of a group who are associated with theuser, rather than a profile of the user. Network sites 110 a-c aresimilar or identical to network sites 108 a-c, respectively.

FIG. 1 further shows a Maps or GPS display device 116 connected toanalytics engine 102. Display device 116 is capable of providingmultiple displays, or multiple facets, 116 a-116 c. These are associatedwith Tabs 1-3, respectively, as described hereinafter in further detail.Display device 116 is connected to analytics engine 102 by means of alink 118, and is controlled and operated by interactive display module102 a of engine 102.

In the operation of system 100, a user may initially provide certainpreference information, which is stored in a user preference database118. This information could pertain to preferences in regard tocategories such as hotels, types of restaurants, preferred serviceproviders of other types, entertainment preferences and specialinterests, but is by no means limited thereto. To begin operation ofsystem 100, the user initially requests a map for some purpose, by usinginput device 104 and providing information associated therewith.Analytics engine 102 then defines a search for information related tothe map request, and determines categories that are to be searched. Forexample, in one embodiment of the invention, engine 102 would beconfigured to understand that whenever it receives a request for atravel route to a particular destination address, it is to search forhotels, restaurants and other specified features and preferred serviceproviders in the vicinity of that address. In another embodiment, one ormore features to be searched for could be provided by the user asspecial instructions, using input device 106.

After initially determining categories of interest, analytics engine 102queries the contents of database 118, to determine whether there is auser preference specified in such database for each category ofinterest. If there is a preference for a category, that preference maybe selected. However, if there is no preference in the database for agiven category, analytics engine 102 queries social network sites 108,in order to acquire data indicating user preferences for that category.In addition, engine 102 queries social network sites 110, to determinepreferences of others who are in a group or community with the user. Insome embodiments of the invention, the user could specify one or moreother persons, such as Friend X, whose profile is to be considered whendetermining the user's preferences for a particular category. Thisinformation is then provided to module 102 a of engine 102. For securityreasons, only members of the social network who are registered with thisservice of system 100, and who have been allowed to capture the user'spreferences, would be used for this purpose.

After reaching conclusions about user preferences in regard torespective categories of interest, search engine 102 directscorresponding search requirements to the search engines 112. FIG. 1shows representative categories that can be searched by engines 112 inaccordance with the user's preferences, including hotels 112 a; musicand theater establishments 112 b; retail stores 112 c; and restaurantsand coffee shops 112 d. A generic set of categories 112 e is alsoincluded, to search for special features or interests that a user mayspecify.

Referring further to FIG. 1, there is shown analytics engine 102configured to carry out respective tasks as described above. Module 102e is a web analytics module, which communicates with and analyzesresults from the servers of a network interface, such as Web 2.0servers. Module 102 b is a category sorter, which arranges items of acategory according to preferences. Thus, module 102 b sorts or filtersout less desired items. Text analytics module 102 c processes resultsfrom respective searches, by converting text from the searches intolexicography understood by analytics engine 102.

Graphic/symbolic representation module 102 b is used to generate symbolsrepresenting different features on a map produced and displayed bysystem 100, in response to the initial user request.

Usefully, three different maps may be produced for display by device116. Display 116 a shows only the requested map, without any informationpertaining to user preferences or profile data. Display 116 b shows therequested map, together with user profile data or preferences. Display116 c shows the information of map 116 b, and additionally showsinformation that has been derived from preferences of one or moremembers of the user's social network group. Such information may berepresented by a special symbol. Also, displays 116 a-116 c are usefullyselected by clicking on Tabs 1-3 respectively.

To further illustrate operation and features of system 100, an exampleis considered wherein a user intends to drive from a given city inPennsylvania to Washington D.C. The purpose of this travel is to conductbusiness at a particular location in the Washington area, over athree-day period. Accordingly, the user enters a request for a map, suchas a Google map, by means of input device 104. The user inputs hislocation in the given city, and also the address of the intendedlocation in the Washington area.

Along with the map request, the user makes use of input device 106 toenter certain special instructions, to which system 100 is configured torespond. These instructions include a request for the map to showcertain user preferred service providers, such as all XXX brand hotelsthat are within a 5 mile radius of the destination address. Otherspecial instructions could be for the map to show all seafoodrestaurants, and all music stores that sell vintage records, which arealso within the 5 mile radius.

In this example, system 100 is preconfigured to respond to the above maprequest by providing a map that shows all hotels of a user preferredhotel chain that are within 5 miles of the destination address. The mapmust also show all gas stations of a user preferred type that lie alongthe route of travel. Accordingly, in response to the map request,analytics engine 102 first queries database 118, in order to obtaininformation pertaining to user preferences.

In regard to user hotel preferences, engine 102 determines from userprofile data in database 118 that in the past, the user has had apreference for hotels of the YYY hotel chain. However, in the specialinstructions the user explicitly states a preference for hotels of theXXX chain, not YYY hotels. Accordingly, the user's hotel preference isupdated in database 118 to show this explicit preference. When the mapis produced, it will include all XXX hotels within 5 miles of thedestination address.

In regard to preferred service providers pertaining to driving needs,such as gas stations, analytics engine 102 examines user profile data indatabase 118, but is not able to find an explicit user preference for aparticular brand of gas station. Accordingly, engine 102 proceeds toquery social network sites 108 and 110, in order to obtain furtherinformation pertaining to user preferences. In examining a socialnetwork group that includes the user, analytics engine 102 finds recentcommunications between the user and group friends that pertain to gasstations. In these communications, the user repeatedly states that hehas found ZZZ brand gas stations to have more favorable prices thanother brands, and to be clean and well run. Analytics engine 102interprets these comments of user to indicate an implicit preference forZZZ brand, as his service provider for gas stations. Locations of thesestations are then shown on a map produced in response to the maprequest.

In response to the special instruction to show music stores that sellvintage records, analytics engine 102 finds no preference information indatabase 118. Engine 102 thus communicates with search engine 112, toobtain a list of all such stores that are within 5 miles of thedestination address. In addition, analytics engine 102 determines frominformation provided by the profile of the user's Friend X that Friend Xhas been successful in finding vintage records in ABC music stores. Oneof the music stores found to be within 5 miles of the destinationaddress is an ABC music store. Moreover, the user and Friend X are shownto have the same likes in regard to vintage records. This information isprovided to the user, in connection with the map produced in response tothe map request. Usefully, a special symbol or marking is used toindicate the ABC music store. Also, this information is used to updateuser preference data in database 118.

Responsive to the special instruction to show seafood restaurants,analytics engine 102 uses search engines 112 to obtain a list of theserestaurants within 5 miles of the destination address. Also, profiles ofboth the user and Friend X show that both of them particularly enjoysoft shell crabs. Accordingly, restaurants on the list that include thisas a specialty are displayed on the map with a special symbol ormarking.

Referring to FIG. 2, there is shown a map depicting a route of travel202, which has been prepared by system 100 as described above. Route 202thus extends from an initial user location address 204 to destinationaddress 206. FIG. 2 also shows locations 208 of ZZZ gas stations alongroute 202, which were determined to be the preferred service provider ofthe user for gas station services as described above. These locationsmay be indicated by a symbol that is used uniquely to represent only ZZZgas stations on the map of FIG. 2.

As a useful feature of an embodiment of the invention, system 100 ofFIG. 1 determines from information provided by social networks 108 and110 that the system user highly appreciates historic and picturesquerailroad bridges. Moreover, the user has expressed great interest in apicture 210, such as through Pinterest or the like, that shows aparticular historic railroad bridge 212. System 100 further recognizesthat this bridge, represented on the map of FIG. 2 as symbol 212 a, isvery close to travel route 202, and could be accessed by a detour route214.

In view of these conclusions, system 100 shows both symbol 212 a anddetour route 214 on the map produced in response to the user request.The map is accompanied by a clear notification to the user, whichexplains what these elements are. The notification would also provide anestimate of the change in travel time the user could expect, if he tookdetour route 214. It is anticipated that this feature could beimplemented by software included in analytics engine 102 of system 100,and could be activated by the user as an option.

FIGS. 3A and 3B show multiple facets or displays that may be provided byan embodiment of the invention. More particularly, FIGS. 3A and 3B showmaps depicting different routes from an initial user location 302 to adestination address 304. Both of these maps or facets are presented tothe user in response to a user map request. FIG. 3A shows a route 306and FIG. 3B shows a route 308.

The facets of FIGS. 3A and 3B also show preferred service providers ofthe user that are located along their respective routes. Thus, FIG. 3Ashows a ZZZ gas station 310 along its route 306. Also, it has beendetermined that CCC coffee shops are preferred by the user. FIG. 3Atherefore shows one of such service providers 312 along route 306.

Referring further to FIG. 3B, it is seen that multiple ZZZ gas station310 and multiple CCC coffee shops 312 are located along route 308.Moreover, a system such as system 100 has previously determined that auser's preference when traveling is to stop in public parks, in order tostretch his legs. Two providers of park services, a state park 314 and acounty park 316, are both located along route 308 and are thereforeshown in the map of FIG. 3B.

By providing the user with different facets for a given map search, theuser is provided with options. For example, the user could decide toselect route 308 for travel, even if route 306 was shorter, since route308 shows significantly more user preferred service providers than route306.

Referring to FIG. 4, there are shown steps for a method including anembodiment of the invention. At step 402, a request is received for amap, such as a GPS or online service map of some type. The request couldbe for a map showing a geographical feature such as a travel route, orthe area around a specified destination address. In response to the maprequest, a mapping tool such as system 100 of FIG. 1 could define or setup a map view showing the geographical feature.

At decision step 404, the method determines whether any preferences ofthe user are needed, for features which are to be shown on the requestedmap. This could include preferences for hotels, gas stations and thelike, as described above. If the decision at step 404 is negative, themethod proceeds to step 414, and otherwise goes to decision step 406.

Step 406 determines whether or not all needed user preferences for therequested map are already available. For example, all needed referencescould already be contained in database 118 of system 100, or could beprovided explicitly by the user along with the map request. If theresult of step 406 is positive, the method goes to step 414, andotherwise goes to step 408.

At step 408, social networks such as network sites 108 are queried, toacquire user profile information for use in determining neededpreferences. At step 410, social networks such as sites 110 are queried.As described above, these sites can provide profile information ofpersons who were related or connected to a user in a social network, andwho had certain likes or preferences in common with the user.

Step 412 decides whether or not all needed user preferences have beendetermined. If not, the method loops back to step 408, and otherwise themethod proceeds to step 414. At this step, all required map views aregenerated for display, such as displays 116 a-116 c of FIG. 1. Themethod then ends.

FIG. 5 is a pictorial representation of a network of data processingsystems in which illustrative embodiments of the invention may beimplemented. Network data processing system 500 is a network ofcomputers in which the illustrative embodiments may be implemented.Network data processing system 500 contains network 502, which is themedium used to provide communications links between various devices andcomputers connected together within network data processing system 500.Network 502 may include connections, such as wire, wirelesscommunication links, or fiber optic cables.

In the depicted example, server computer 504 and server computer 506connect to network 502 along with storage unit 508. In addition, clientcomputers 510, 512, and 514 connect to network 502. Client computers510, 512, and 514 may be, for example, personal computers or networkcomputers. In the depicted example, server computer 504 providesinformation, such as boot files, operating system images, andapplications to client computers 510, 512, and 514. Client computers510, 512, and 514 are clients to server computer 504 in this example.Network data processing system 500 may include additional servercomputers, client computers, and other devices not shown.

Program code located in network data processing system 500 may be storedon a computer-recordable storage medium and downloaded to a dataprocessing system or other device for use. For example, program code maybe stored on a computer-recordable storage medium on server computer 504and downloaded to client computer 510 over network 502 for use on clientcomputer 510.

In the depicted example, network data processing system 500 is theInternet with network 502 representing a worldwide collection ofnetworks and gateways that use the Transmission ControlProtocol/Internet Protocol (TCP/IP) suite of protocols to communicatewith one another. At the heart of the Internet is a backbone ofhigh-speed data communication lines between major nodes or hostcomputers consisting of thousands of commercial, governmental,educational and other computer systems that route data and messages. Ofcourse, network data processing system 500 also may be implemented as anumber of different types of networks, such as, for example, anintranet, a local area network (LAN), or a wide area network (WAN). FIG.5 is intended as an example, and not as an architectural limitation forthe different illustrative embodiments.

Turning now to FIG. 6, an illustration of a data processing system isdepicted in accordance with an illustrative embodiment. The dataprocessing system may be used as one or more of the components fornetwork system 500. In this illustrative example, data processing system600 includes communications fabric 602, which provides communicationsbetween processor unit 604, memory 606, persistent storage 608,communications unit 610, input/output (I/O) unit 612, and display 614.

Processor unit 604 serves to execute instructions for software that maybe loaded into memory 606. Processor unit 604 may be a number ofprocessors, a multi-processor core, or some other type of processor,depending on the particular implementation. A number, as used hereinwith reference to an item, means one or more items. Further, processorunit 604 may be implemented using a number of heterogeneous processorsystems in which a main processor is present with secondary processorson a single chip. As another illustrative example, processor unit 604may be a symmetric multi-processor system containing multiple processorsof the same type.

Memory 606 and persistent storage 608 are examples of storage devices616. A storage device is any piece of hardware that is capable ofstoring information, such as, for example, without limitation, data,program code in functional form, and/or other suitable informationeither on a temporary basis and/or a permanent basis. Storage devices616 may also be referred to as computer-readable storage devices inthese examples. Memory 606, in these examples, may be, for example, arandom access memory or any other suitable volatile or non-volatilestorage device. Persistent storage 608 may take various forms, dependingon the particular implementation.

For example, persistent storage 608 may contain one or more componentsor devices. For example, persistent storage 608 may be a hard drive, aflash memory, a rewritable optical disk, a rewritable magnetic tape, orsome combination of the above. The media used by persistent storage 608also may be removable. For example, a removable hard drive may be usedfor persistent storage 608.

Communications unit 610, in these examples, provides for communicationswith other data processing systems or devices. In these examples,communications unit 710 is a network interface card. Communications unit610 may provide communications through the use of either or bothphysical and wireless communications links.

Input/output unit 612 allows for input and output of data with otherdevices that may be connected to data processing system 600. Forexample, input/output unit 612 may provide a connection for user inputthrough a keyboard, a mouse, and/or some other suitable input device.Further, input/output unit 612 may send output to a printer. Display 614provides a mechanism to display information to a user.

Instructions for the operating system, applications, and/or programs maybe located in storage devices 616, which are in communication withprocessor unit 604 through communications fabric 602. In theseillustrative examples, the instructions are in a functional form onpersistent storage 608. These instructions may be loaded into memory 606for execution by processor unit 604. The processes of the differentembodiments may be performed by processor unit 604 using computerimplemented instructions, which may be located in a memory, such asmemory 606.

These instructions are referred to as program code, computer-usableprogram code, or computer-readable program code that may be read andexecuted by a processor in processor unit 604. The program code in thedifferent embodiments may be embodied on different physical orcomputer-readable storage media, such as memory 606 or persistentstorage 608.

Program code 618 is located in a functional form on computer-readablemedia 620 that is selectively removable and may be loaded onto ortransferred to data processing system 600 for execution by processorunit 604. Program code 618 and computer-readable media 620 form computerprogram product 622 in these examples. In one example, computer-readablemedia 620 may be computer-readable storage media 724. Computer-readablestorage media 624 may include, for example, an optical or magnetic diskthat is inserted or placed into a drive or other device that is part ofpersistent storage 608 for transfer onto a storage device, such as ahard drive, that is part of persistent storage 608. Computer-readablestorage media 624 also may take the form of a persistent storage, suchas a hard drive, a thumb drive, or a flash memory, that is connected todata processing system 600. In some instances, computer-readable storagemedia 624 may not be removable from data processing system 600.

The different components illustrated for data processing system 600 arenot meant to provide architectural limitations to the manner in whichdifferent embodiments may be implemented. The different illustrativeembodiments may be implemented in a data processing system includingcomponents in addition to or in place of those illustrated for dataprocessing system 600. Other components shown in FIG. 6 can be variedfrom the illustrative examples shown. The different embodiments may beimplemented using any hardware device or system capable of runningprogram code. As one example, the data processing system may includeorganic components integrated with inorganic components and/or mayinclude entirely organic components excluding a human being. Forexample, a storage device may be comprised of an organic semiconductor.

In another illustrative example, processor unit 604 may take the form ofa hardware unit that has circuits that are manufactured or configuredfor a particular use. This type of hardware may perform operationswithout needing program code to be loaded into a memory from a storagedevice to be configured to perform the operations.

For example, when processor unit 604 takes the form of a hardware unit,processor unit 604 may be a circuit system, an application specificintegrated circuit (ASIC), a programmable logic device, or some othersuitable type of hardware configured to perform a number of operations.With a programmable logic device, the device is configured to performthe number of operations. The device may be reconfigured at a later timeor may be permanently configured to perform the number of operations.Examples of programmable logic devices include, for example, aprogrammable logic array, programmable array logic, a field programmablelogic array, a field programmable gate array, and other suitablehardware devices. With this type of implementation, program code 618 maybe omitted because the processes for the different embodiments areimplemented in a hardware unit.

In still another illustrative example, processor unit 604 may beimplemented using a combination of processors found in computers andhardware units. Processor unit 604 may have a number of hardware unitsand a number of processors that are configured to run program code 618.With this depicted example, some of the processes may be implemented inthe number of hardware units, while other processes may be implementedin the number of processors.

As another example, a storage device in data processing system 600 isany hardware apparatus that may store data. Memory 606, persistentstorage 608, and computer-readable media 620 are examples of storagedevices in a tangible form.

In another example, a bus system may be used to implement communicationsfabric 602 and may include one or more buses, such as a system bus or aninput/output bus. Of course, the bus system may be implemented using anysuitable type of architecture that provides for a transfer of databetween different components or devices attached to the bus system.Additionally, a communications unit may include one or more devices usedto transmit and receive data, such as a modem or a network adapter.Further, a memory may be, for example, memory 606, or a cache, such asfound in an interface and memory controller hub that may be present incommunications fabric 602.

FIG. 7 shows a mapping of user preferred service providers that arewithin a specified radius of destination address 206, such as 5 miles.Different types of providers in the map of FIG. 7 are uniquelyrepresented by different symbols. Thus, each symbol 702 represents anXXX hotel, symbol 704 represents an ABC music store, and symbols 706represent other music stores. Symbol 708 represents a seafood restaurantthat has soft shell crabs as a specialty.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiment. The terminology used herein was chosen to best explain theprinciples of the embodiment, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdisclosed here.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof code, which includes one or more executable instructions forimplementing the specified logical function(s). It should also be notedthat, in some alternative implementations, the functions noted in theblock may occur out of the order noted in the figures. For example, twoblocks shown in succession may, in fact, be executed substantiallyconcurrently, or the blocks may sometimes be executed in the reverseorder, depending upon the functionality involved. It will also be notedthat each block of the block diagrams and/or flowchart illustration, andcombinations of blocks in the block diagrams and/or flowchartillustration, can be implemented by special purpose hardware-basedsystems that perform the specified functions or acts, or combinations ofspecial purpose hardware and computer instructions.

What is claimed is:
 1. A computer implemented method for operating aviewable mapping tool to provide a user with specified informationincluding information pertaining to one or more preferred serviceproviders, said method comprising the steps of: defining a first mapview that shows a geographical feature; specifying each of one or morecategories, wherein a user preference is needed for each specifiedcategory, in order to show an additional feature corresponding to eachuser preference on a second map view which includes the geographicalfeature; determining the user preference for each specified category,wherein at least one of the user preferences is obtained by accessing anonline social network in which the user participates; and searching eachdetermined user preference to acquire information for generating each ofthe additional features for the second map view.
 2. The method of claim1, further comprising the step of: displaying the first map view and thesecond map view, wherein the second map view comprises the first mapview, and further comprises at least one additional feature generated byaccessing one of the online social networks.
 3. The method of claim 1,wherein: at least one of the user preferences is determined by a userstatement obtained by accessing an online social network in which theuser participates.
 4. The method of claim 1, wherein: at least one ofthe user preferences is a preference of a specified person associatedwith the user in one of the online social networks.
 5. The method ofclaim 1, wherein: at least one of the user preferences is an implicitpreference, which is inferred from information which the user haspreviously submitted over one or more of the online social networks. 6.The method of claim 1, further comprising the step of: using a userpreference determined from information obtained by accessing one of theonline social networks to update a user preference database associatedwith the mapping tool.
 7. The method of claim 1, further comprising thestep of: displaying the first map view and the second map view, whereinthe second map view comprises the first map view and a symbol depictingeach of the additional features corresponding to one of the userpreferences.
 8. The method of claim 7, further comprising the step of:displaying a third map view wherein the third map view comprisesfeatures of the first map view, the second map view, and informationobtained from one or more persons associated with the user in one ormore of the online social networks.
 9. The method of claim 8, wherein:the first, second and third map views are each selectively viewable on adisplay device associated with the mapping tool.
 10. The method of claim1, wherein: the mapping tool is used in association with a map creatingsystem selected from a group consisting of a Global Positioning System(GPS) and a specified online mapping system.
 11. The method of claim 1,wherein: the mapping tool comprises an analytics engine for selectivelyaccessing one or more online social networks.
 12. The method of claim11, wherein: the analytics engine produces a map view that displays afeature derived from an implicitly determined preference of the user.13. The method of claim 1, wherein: one of the additional features isdepicted on the second map view by using a symbol that is unique to thedepicted additional feature.
 14. The method of claim 13, wherein: theuser preference categories are selected from the group consisting ofhotels, gas stations, and restaurants.
 15. A computer program productexecutable in a recordable storage medium for operating a viewablemapping tool to provide a user with specified information includinginformation pertaining to one or more preferred service providers, saidcomputer program product comprising: instructions for defining a firstmap view that shows a geographical feature; instructions for specifyingeach of one or more categories, wherein a user preference is needed foreach specified category, in order to show an additional featurecorresponding to each user preference on a second map view whichincludes the geographical feature; instructions for determining the userpreference for each specified category, wherein at least one of the userpreferences is obtained by accessing an online social network in whichthe user participates; and instructions for searching each determineduser preference to acquire information for generating each of theadditional features for the second map view.
 16. The computer programproduct of claim 15, wherein: the first map view and the second map vieware displayed, wherein the second map view comprises the first map view,and further comprises at least one additional feature generated byaccessing one of the online social networks.
 17. The computer programproduct of claim 15, wherein: at least one of the user preferences isdetermined by a user statement obtained by accessing an online socialnetworks with which the user participates.
 18. The computer programproduct of claim 15, wherein: at least one of the user preferences is apreference of a specified person associated with the user in one of theonline social networks.
 19. The computer program product of claim 15,wherein: at least one of the user preferences is an implicit preference,which is inferred from information which the user has previouslysubmitted over one or more of the online social networks.
 20. A computersystem for operating a viewable mapping tool to provide a user withspecified information including information pertaining to one or morepreferred service providers, said system comprising: a bus; a memoryconnected to the bus, wherein program code is stored on the memory; anda processor unit connected to the bus, wherein the processor unitexecutes the program code: to define a first map view that shows ageographical feature; to specify each of one or more categories, whereina user preference is needed for each specified category, in order toshow an additional feature corresponding to each user preference on asecond map view which includes the geographical feature; to determinethe user preference for each specified category, wherein at least one ofthe user preferences is obtained by accessing an online social networkin which the user participates; and to search each determined userpreference to acquire information for generating each of the additionalfeatures for the second map view.